package 差分Plus离散化;

import java.util.Map;
import java.util.TreeMap;

/**
 * @author aodre , QQ : 480029069
 * @date 2023/6/1 14:51
 */
public class lc731我的课程表安排 {

    /*
     这个题的差分， 有点小的抽象！
     */

    Map<Integer,Integer> diff = new TreeMap<>();

    public boolean book(int start,int end){
        diff.put(start,diff.getOrDefault(start,0) + 1);
        diff.put(end,diff.getOrDefault(end,0) - 1);
        int sum = 0,max = 0;
        for(Map.Entry<Integer,Integer> entry : diff.entrySet()){
            sum += entry.getValue();
            max = Math.max(sum,max);   // 其实 可以不用这样写的， 因为 每次统计 sum 的时候，都进行了一次判断， 所以并不会错过最大值的情况！
            if(max > 2){
                diff.put(start,diff.getOrDefault(start,0) - 1);
                diff.put(end,diff.getOrDefault(end,0) + 1);
                return false;
            }
        }
        return true;
    }


}
